package com.tyk.bookstore.back.storage.service;

import com.tyk.bookstore.back.common.core.model.type.BinVo;
import com.tyk.bookstore.back.common.core.model.type.SuggestionQuery;
import com.tyk.bookstore.back.storage.manager.excel.model.WarehouseExcelVo;
import com.tyk.bookstore.back.storage.model.query.WarehouseAddQuery;
import com.tyk.bookstore.back.storage.model.query.WarehousePageQuery;
import com.tyk.bookstore.back.storage.model.query.WarehouseUpdateQuery;
import com.tyk.bookstore.back.storage.model.vo.WarehousePageVo;
import com.tyk.bookstore.back.storage.model.vo.WarehouseVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 仓库管理
 */
public interface WarehouseService {

    /**
     * 获取仓库详情
     */
    WarehouseVo getById(Long id);

    /**
     * 分页查询仓库
     */
    WarehousePageVo getPage(WarehousePageQuery query);

    /**
     * 添加仓库
     */
    void add(WarehouseAddQuery query);

    /**
     * 更新仓库
     */
    void updateById(WarehouseUpdateQuery query);

    /**
     * 删除仓库
     */
    void deleteById(Long id);

    /**
     * 批量删除仓库
     */
    void deleteBatchByIdSet(Set<Long> idSet);

    /**
     * 仓库搜索建议列表
     */
    List<BinVo> getSuggestionList(SuggestionQuery query);


    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<WarehouseExcelVo> getWarehouseExcelVoList(WarehousePageQuery query);

    /**
     * 保存仓库Excel
     *
     * @param warehouseList 仓库列表
     */
    void saveWarehouseExcelVoList(List<WarehouseExcelVo> warehouseList);
}
